﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Loja.Banco;

namespace Loja.Aplicação
{
    class TipoProdutoControle
    {
        public LOJA banco { get; set; }

        public TipoProdutoControle(LOJA banco)
        {
            this.banco = banco;
        }

        public void Salvar(TipoProduto tipoproduto)
        {
            banco.AddToTipoProduto(tipoproduto);
            banco.SaveChanges();
        }
        /*
        public IEnumerable<TipoProduto> Listar()
        {
            return banco.TipoProduto.ToList();
        }
        */

        public Object Listar()
        {
            var tipoProdutoBuscar = (from x in banco.TipoProduto
                                     where x.Desativado.Equals(false)
                                      select new
                                      {
                                          Código = x.TipoProduto_ID,
                                          x.Descricao
                                      });

            return (Object)tipoProdutoBuscar;
        }

        public Object BuscarCampo(String campo)
        {            
            var tipoprodutoBuscar = (from x in banco.TipoProduto
                                 where x.Descricao.Contains(campo)
                                 && x.Desativado.Equals(false)   
                                 select new 
                                 {
                                     Código = x.TipoProduto_ID,
                                     x.Descricao
                                 });

            return (Object)tipoprodutoBuscar;            
        }

        public void Alterar(TipoProduto tipoproduto)
        {
            TipoProduto tipoprodutoAlterar = (from x in banco.TipoProduto
                                              where x.TipoProduto_ID == tipoproduto.TipoProduto_ID
                                              && x.Desativado.Equals(false)
                                      select x).First();
            tipoprodutoAlterar.Descricao = tipoproduto.Descricao;
            
            banco.SaveChanges();
        }

        public void Alterar(TipoCadastro tipoCadastro)
        {
            TipoCadastro tipocadastroSalvar = banco.TipoCadastro.Where(x => x.TipoCadastro_ID == tipoCadastro.TipoCadastro_ID).First();
            tipocadastroSalvar.Descricao = tipoCadastro.Descricao;
            banco.SaveChanges();
        }

        public void Excluir(TipoProduto tipoproduto)
        {
            TipoProduto tipoProdutoExcluir = (from x in banco.TipoProduto
                                               where x.TipoProduto_ID == tipoproduto.TipoProduto_ID
                                               && x.Desativado.Equals(false)
                                                select x).First();

            tipoProdutoExcluir.Desativado = true;
            banco.SaveChanges();
        }

        public TipoProduto Buscar()
        {
            var tipoprodutoBuscar = (from x in banco.TipoProduto
                                 where x.TipoProduto_ID == 1
                                 && x.Desativado.Equals(false)
                                 select x).First();
            return tipoprodutoBuscar;

        }

        public TipoProduto Buscar(Int32 tipoproduto)
        {
            TipoProduto tipoprodutoBuscar = (from x in banco.TipoProduto
                                             where x.TipoProduto_ID == tipoproduto
                                             && x.Desativado.Equals(false)
                                     select x).First();
            return tipoprodutoBuscar;

        }
    }
}
